#pragma once

#include "Implementation/ShaderSystem/ShaderSystem.h"
#include "Interfaces/IAnnotationHandler.h"
#include "Interfaces/ISemanticHandler.h"
#include "Interfaces/ICallbackHandler.h"
#include "Interfaces/IShader.h"
#include "Interfaces/IShaderParameter.h"

#include "Implementation/SemanticCallbackHandler/FloatSemanticHandler.h"
#include "Implementation/SemanticCallbackHandler/IntSemanticHandler.h"
#include "Implementation/SemanticCallbackHandler/BoolSemanticHandler.h"
#include "Implementation/SemanticCallbackHandler/StringSemanticHandler.h"
#include "Implementation/SemanticCallbackHandler/MatrixSemanticHandler.h"
#include "Implementation/SemanticCallbackHandler/TextureSemanticHandler.h"

/*
Current Version: 0.3

Changelog:
Version 0.3:
- added float4 semantic handler
- added float3 semantic handler
- added float2 semantic handler
- added float semantic handler
- added float4 array semantic handler
- added float3 array semantic handler
- added float2 array semantic handler
- added float array semantic handler
- added int semantic handler
- added int array semantic handler
- added bool semantic handler
- added matrix semantic handler
- added string semantic handler
- added texture semantic handler

Version 0.2: 
- added some const ref return values
- changed iterator incrementation
- added callbackhandler

Version 0.1:
- First release
*/